package com.tedu.review.day02;

/**
 * Java类---继承---方法：具备多态性
 * 实现父子类方法相互调用，注意 ：重写跟重载
 * 实现多态：向上造型  父类对象  引用=new   子类对象（）;【创建对象：常见】
 */
class A1{
    public  void tell1() {
        System.out.println("A--你好，我是tell1");
    }
        public void tell2(){
            System.out.println("A--你好，我是tell2");
        }
    }
    class B1 extends A1 {
        public void tell2() {
            System.out.println("B--你好，我是tell2");
        }


        public void tell3(){
            System.out.println("A--你好，我是tell3");
        }
    }
public class 多态造型问题 {
    public static void main(String[] args) {


        //继承---方法：方法互通   考虑：多态【向上/向下】
        // A1 a1=new B1();      抽象类与接口使用
        // B1 b1=new B1();
        //A1 a1=b1;
        // a1.tell1();
        // a1.tell2();//向上造型：调用父类的方法，没有实现方法互通
        // 如果有重写，子类覆盖父类的方法
        //向下造型：
        A1 a1 = new B1();//1.父类  引用=new 子类（）; 向上造型一次
        B1 b1 = (B1) a1;//2.子类   引用=（子类对象）向上造型引用
        //实现：方法互通
        //父类方法
        b1.tell1();
        b1.tell2();   //子类方法：重写
        b1.tell3();  //子类方法
    }
}
